Merged
Conversation
- Add comprehensive documentation for known issues - Create v0.13.3 test cases for future implementation - Update version to v0.13.3 - Update IMPLEMENTATION_STATUS.md - All existing tests (33 tests, 5 suites) pass Known Issues (to be fixed in v0.13.4): - String array initialization - Vector<string> support - Generic struct arrays - Nested match expressions See release_notes/v0.13.3.md for details
- Add comprehensive generic struct array support as main feature #1 - Update test statistics: 4373 tests (all passing) - Add new test files documentation (672 lines of test code) - Fix test timing bug (TEST-601) in bug fixes list - Update known limitations section (removed generic array limitations) - Update development statistics and performance metrics - Document all new test cases and integration tests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cb言語 v0.13.1 統合リリースノート
リリース日: 2025年11月16日
ステータス: ✅ Released
Git Tag: v0.13.1
🎯 概要
v0.13.1は、v0.13.0で導入されたAsync/Awaitとジェネリクス機能を大幅に強化し、実用的な言語として成熟させる重要なリリースです。このリリースでは、4つの段階的な改善(v0.13.1~v0.13.4)を統合し、以下の主要な機能を提供します:
🆕 主要新機能
1. ジェネリック構造体配列の包括的サポート 🔥
ジェネリック構造体内の配列、ジェネリック構造体の配列、そしてジェネリック関数との連携が完全に動作するようになりました。
構造体内の配列:
配列の構造体:
ジェネリック関数との連携:
実装内容:
T[N])の完全サポートS<T>[N])の完全サポートPair<T, U>)のサポート包括的テスト:
2. Async Implメソッドと自動self同期
2. Async Implメソッドと自動self同期
Interface/Impl内でasyncメソッドを定義し、
selfを通じた状態管理が自動的に行われるようになりました。技術的詳細:
SimpleEventLoopがタスク完了時に自動的にselfを同期yieldを含む複雑な非同期処理でも状態が保証される__self_receiver__メタ変数でレシーバー名を追跡修正されたバグ:
ASYNC-172: async implメソッドでselfを書き換えてもawait後に値が戻らないASYNC-173:yieldを含むasync implメソッドでselfメンバーが破棄されるASYNC-174:selfメンバー代入時に元のレシーバーを特定できないASYNC-176: ASanビルドで累積値が0に戻る問題3. 文字列配列のサポート
string[N]型の配列が完全に動作するようになりました。実装内容:
array_stringsベクターへの直接代入をサポート4. Vectorのサポート
文字列をVectorで扱えるようになり、動的な文字列配列が可能になりました。
技術的詳細:
malloc()で新しいメモリを確保free()char*ポインタの配列5. ネストしたmatch式
Option<Result<T, E>>のような複雑な型でパターンマッチングができるようになりました。実装内容:
associated_valueフィールドを追加(生ポインタとして実装)重要な技術的決定:
std::shared_ptr<Variable>ではなく生ポインタ(Variable*)を使用6. try/checked式の実装
tryとchecked式でエラーハンドリングが可能になりました。実装内容:
AST_TRY_EXPR/AST_CHECKED_EXPRノードを追加ReturnException/RuntimeExceptionを捕捉してResult<T, RuntimeError>へ変換7. Generic配列の文字列型バグ修正
Container<string>のようなGeneric構造体の配列メンバーで、文字列が正しく表示されるようになりました。修正前:
修正後:
実装内容:
🐛 修正されたバグ
ASYNC-172selfを書き換えてもawait後に値が戻らないselfの書き戻しを行っていなかった問題を修正ASYNC-173yieldを含むasync implメソッドでselfメンバーが破棄されるselfとself.*を丸ごと保持ASYNC-174selfメンバー代入時に元のレシーバーを特定できない__self_receiver__メタ変数を導入ASYNC-176yield後に誤って同じ代入をやり直さないよう修正GEN-201STR-301STR-302ENUM-401MEM-501TEST-601📊 テスト結果
最終テスト統計
新規テストケース
Async/Await:
tests/cases/async/test_impl_async_method.cb- Async implメソッドtests/cases/async/test_impl_async_yield.cb- Async impl + yieldtests/cases/async/test_struct_async_method_basic.cb- 構造体asyncメソッドジェネリック構造体配列:
tests/cases/generics/test_generic_struct_array_comprehensive.cb- 構造体内の配列(251行、10セクション)tests/cases/generics/test_array_of_generic_structs.cb- 構造体の配列(213行、10セクション)tests/cases/generics/test_generic_functions_with_arrays.cb- ジェネリック関数と配列(208行、10セクション)tests/integration/generics/test_generics.hpp- Integration testに3テスト追加(24→27テスト)エラーハンドリング:
tests/cases/error_handling/test_try_checked.cb- try/checked式その他:
tests/cases/v0.13.2/test_comprehensive.cb- Generic配列テストtests/cases/v0.13.3/test_simple_string_array.cb- 文字列配列Vector<string>ケース複数📈 パフォーマンス
🔄 後方互換性
v0.13.0からv0.13.1へのアップグレードは完全に後方互換性があります:
アップグレード手順:
v0.13.1では以下の機能が完全にサポートされています:
✅ 完全サポート機能
ジェネリック構造体配列
struct S<T> { T[N] items; })S<T>[N])Pair<T, U>)Async/Await
selfの自動同期yieldを含む複雑な非同期処理文字列配列とVector
string[N]配列Vector<string>パターンマッチング
Option<Result<T, E>>のような複雑な型📋 今後の拡張予定(v0.14.x以降)
以下の機能は現在調査中または計画段階です:
Future配列の完全サポート
より高度なAsync/Generic統合
パフォーマンス最適化
📁 変更されたファイル
コア実装(9ファイル)
src/backend/interpreter/core/interpreter.hassociated_valueフィールドを追加src/backend/interpreter/evaluator/literals/eval.cppsrc/backend/interpreter/executors/control_flow_executor.cppassociated_valueのサポートsrc/backend/interpreter/executors/declarations/variable_declaration.cppsrc/backend/interpreter/managers/variables/declaration.cppsrc/backend/interpreter/executors/assignments/simple_assignment.cppsrc/backend/interpreter/evaluator/functions/call_impl.cpparray_get<T>()/array_set<T>()に文字列型のサポート追加src/backend/interpreter/event_loop/simple_event_loop.cppsrc/backend/interpreter/evaluator/core/evaluator.cppテストファイル(7ファイル)
tests/cases/generics/test_generic_struct_array_comprehensive.cbtests/cases/generics/test_array_of_generic_structs.cbtests/cases/generics/test_generic_functions_with_arrays.cbtests/integration/generics/test_generics.hpptests/integration/struct/basic_struct_tests.hpptests/cases/generics/README_GENERIC_ARRAY_TESTS.mdドキュメント(4ファイル)
docs/spec.md- v0.13.1の仕様を更新docs/todo/v0.13.1_implementation_plan.md- 実装計画(完了)docs/todo/v0.13.4_implementation_plan.md- 実装計画(完了)release_notes/v0.13.1.md- この統合リリースノート📚 使用例
Async Impl + 文字列配列 + Vector
ネストしたmatch + try式
🎯 開発統計